package com.tedu.api.io;

import java.io.File;
import java.io.IOException;

/**
 * listFiles(接口：Filter)
 * 作用：按照”指定规则“获取对应文件/文件夹
 *
 * Filter接口---专门给listFiles方法提供：过滤文件夹或者文件【指定规则】
 * accept()从每个File的文件中判断，拿到【具体逻辑】的文件夹
 *
 * 需求： 获取 API  项目下所有子项【文件和文件夹】，获取src文件
 *       指定规则：严重是s开头就是src
 */
public class FilterAPI {
    //主方法：./路径指定根级
    public static void main(String[] args) throws IOException {
        //1.创建File文件夹：获取当前 API 文件夹 路径：./API


        //4.创建Filter接口对象---无法直接创建：实现类--实现--接口【创建】
        /*FileFilter my=new FileFilter() {

            public boolean accept(File pathname) {
             String name=pathname.getName();   //文件夹：src  字符串
                      System.out.println("过滤出来文件夹名字是："+name);
                return pathname.getName().startsWith("s");
                  }

        } ;*/

        //2.获取文件夹中的所有“子项：文件夹下包括所有文件和文件夹”

        //3.打印子项下所有名字    增强for
       /* for(int i=0;i< subs.length;i++){//i 下标  从0开始
            System.out.println("所有的文件和文件夹的名字"+subs[i].getName());
        }*/
        //增强for for(接收类型 f:){}
        for(File f:new File("."+File.separator+"API").listFiles((pathname)->{return pathname.getName().startsWith("s");})){
            System.out.println("遍历后过滤完成："+f);
        }
    }
    //单元测试：./   路径指定父级
   /* @Test
    public void test01() throws IOException {
        //创建File文件夹：获取当前 API 文件夹 路径：./API
        File file=new File("."+File.separator);
        System.out.println(file.getCanonicalPath());
    }*/
}
//创建实现类---实现---FileFilter接口---对象创建
